Traditional process engines are general-purpose, monolithic server software that load custom process applications designed by application developers. Process engines include the complete set of functional capabilities required by any application developer. Traditional process engines are built for functional completeness, resulting in larger, less-than-optimal memory and disk footprints for any specific process application. Consequently, traditional process engines may not be suitable for resource-constrained environments, such as embedded computing and Internet of Things (IoT) environments, in which resources such as physical memory, compute and storage resources, etc. may be limited and which may lack direct network access to repositories. It would be useful to create a process engine that is suitable for resource-constrained environments.